﻿Public Class EinheitBaupanzer
    Inherits ObjektEinheit
    Public Sub New(ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, Optional ByVal HatSichBewegt As Boolean = True)
        MyBase.New(neuSpieler, neuX, neuY, HatSichBewegt)
    End Sub
    Public Sub New(ByVal neuKP As Integer, ByVal neuTreibstoff As Integer, ByVal neuMunition As Integer, ByVal neuSpieler As Integer, ByVal neuBesetzen As Boolean, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Tarnung As Boolean, Optional ByVal HatSichbeWegt As Boolean = True)
        MyBase.New(neuKP, neuTreibstoff, neuMunition, neuSpieler, neuX, neuY, neuBesetzen, HatSichbeWegt, Tarnung)
    End Sub
    Public Sub New(ByVal neuKP As Integer, ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, Optional ByVal HatSichbeWegt As Boolean = True)
        MyBase.New(neuKP, neuSpieler, neuX, neuY, HatSichbeWegt)
    End Sub

    Protected Overrides Sub Datenladen()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.CommanderWars2
                Einheitenname = "Baupanzer"
                EinheitenID = "BAUPANZER"
                SpritMax = 70
                KannTarnen = False
                KannBesetzen = False
                Treibeverbrauch = 0
                Koste = 6000
                Faehigkeit = "Bauen+Ration"
                Treibstoff = SpritMax
                Bewegungspunkte = 6
                Bewegungsart = MovementSorts.Ketten.tostring
                Sicht = 1
                MunitionMax = 3
                Munition = MunitionMax
                Waffe1 = "Keine"
                Waffe2 = "MaterialTTP"
                Array.Resize(Ladung, 0)
                Array.Resize(GeladeneEinheitenIDs, 0)
                Array.Resize(EntladungsUntergrund, 0)
                MinimaleReichweite = 0
                MaximaleReichweite = 0
                BildIDbestimmen()
                Explosion = "Land"
            Case Else
                Einheitenname = "Baupanzer"
                EinheitenID = "BAUPANZER"
                SpritMax = 70
                KannTarnen = False
                KannBesetzen = False
                Treibeverbrauch = 0
                Koste = 5000
                Faehigkeit = "Bauen"
                Treibstoff = SpritMax
                Bewegungspunkte = 6
                Bewegungsart = MovementSorts.Ketten.tostring
                Sicht = 1
                MunitionMax = -1
                Munition = MunitionMax
                Waffe1 = "Keine"
                Waffe2 = "Keine"
                Array.Resize(Ladung, 0)
                Array.Resize(GeladeneEinheitenIDs, 0)
                Array.Resize(EntladungsUntergrund, 0)
                MinimaleReichweite = 0
                MaximaleReichweite = 0
                BildIDbestimmen()
                Explosion = "Land"
        End Select
    End Sub
    Dim Baufortschritt As Integer = 0
    ''' <summary>
    ''' Baut eine Temporaere Basis
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub BuildTempBase(ByVal X As Integer, ByVal Y As Integer)
        Baufortschritt += getKP()
        If Baufortschritt >= 20 Then
            Dim L As ObjektLandschaft = Objektverwalter.Spielfeld.Landschaften(X, Y, Objektverwalter.Spielfeld.MomentaneSchlacht)
            Dim ID As String = L.getID
            If ID = "STRAND" Or ID = "SEE" Then
                L.Gebaeude = ObjektLadeklasse.NewGebaeude("TEMPWERFT", Spieler, X, Y, Objektverwalter.Spielfeld.MomentaneSchlacht)
            ElseIf ID = "EBENE" Or ID = "WUESTE" Or ID = "SCHNEE" Then
                L.Gebaeude = ObjektLadeklasse.NewGebaeude("TEMPFLUGHAFEN", Spieler, X, Y, Objektverwalter.Spielfeld.MomentaneSchlacht)
            End If
            Munition = -1
            Baufortschritt = 0
            Besetzen = False
        Else
            Besetzen = True
        End If

    End Sub
    Public Sub StopBuildTempBase()
        Baufortschritt = 0
        Besetzen = False
    End Sub
    Public Function GetBaufortschritt() As Integer
        Return Baufortschritt
    End Function
    Protected Overrides Sub UpgradeUnit(ByVal E As ObjektEinheit)
        Select Case EinheitenStufe
            Case ObjektEinheit.Stufe.Leutnant
                E.ATKDEFBoost.Y += 5
            Case Stufe.Offizier
                E.ATKDEFBoost.Y += 10
            Case Stufe.General
                E.ATKDEFBoost.Y += 10
                E.SichtBonus += 1
            Case Stufe.Veteran
                E.ATKDEFBoost.Y += 20
                E.Bewegungsbonus += 1
            Case Stufe.KO
                E.ATKDEFBoost.Y += 20
                E.Bewegungsbonus += 1
            Case Else
        End Select

    End Sub
End Class
